package com.gupaoedu.pattern.decorator;

/**
 * 2019/9/28
 * created by chenpp
 *
 * 装饰器模式中:可以使用接口，也可以使用抽象类，看是否需要实现一些默认的方法
 * 这里还可以将所有的装饰类抽取一个父类,这样可以在父类中统一定义公共属性和方法
 */
public class Test {
    public static void main(String[] args) {
        DefaultMilkTea milkTea = new DefaultMilkTea();

        DefaultMilkTea milkTeaWithRedBeans = new RedBeansDecorator(milkTea);

        DefaultMilkTea milkTeaWithBeansAndPudding = new PuddingDecorator(milkTeaWithRedBeans);

        milkTea.makeMilkTea();
        milkTeaWithRedBeans.makeMilkTea();
        milkTeaWithBeansAndPudding.makeMilkTea();
    }
}
